﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CeA.Reports.Atendimento.Web.Helpers;
using CeA.Reports.Atendimento.DataAccess.Criteria;
using System.Collections.Generic;
using CeA.Reports.Atendimento.DataAccess.DTO;
using CeA.Reports.Atendimento.Web.WebControls;

namespace CeA.Reports.Atendimento.Web.admin {
    public partial class regiaocadastro : System.Web.UI.Page {
        protected void Page_Init(object sender, EventArgs e)                        {
            cmdPesquisarRfs.Click += new EventHandler(cmdPesquisarRfs_Click);
            PesquisaRfs.Confirmar += new CeA.Reports.Atendimento.Web.WebControls.PesquisaRfs.ConfirmarEventHandler(PesquisaRfs_Confirmar);
        }

       
        protected void Page_Load(object sender, EventArgs e)                        {
            if (PreviousPage != null) {
                this.CodigoRegiao = PreviousPage.CodigoRegiao;
                carregar();
            }

        }


        protected void cmdPesquisarRfs_Click(object sender, EventArgs e)            {
            PesquisaRfs.pop();
        }


        protected void PesquisaRfs_Confirmar(object sender, PesquisaRfsEventArgs e) {
            hdnRfsId.Value = Convert.ToString(e.Id);
            txtRfs.Text = e.Nome;
            txtRfs.ToolTip = e.Descricao;
        }


        protected void cmdVoltar_Click(object sender, EventArgs e)                  {
            NavigationHelper.RefererRedirect("/admin/regiao.aspx");
        }


        protected void cmdSalvar_Click(object sender, EventArgs e)                  {
            if (this.CodigoRegiao > 0) 
                atualizar();
            else 
                inserir();
        }


        private void carregar()                                                     {
            int regiaoId = this.CodigoRegiao;
            if (regiaoId > 0) {
                RegiaoCriteria filter = new RegiaoCriteria();
                filter.addRegiao(regiaoId);

                List<RegiaoDTO> ds = Qtech.Reports.Atendimento.Services.CadastroFacade.FindRegiao(filter);
                
                RegiaoDTO dto = ds[0];
                hdnRfsId.Value = Convert.ToString(dto.Rfs.Id);
                txtRfs.Text = dto.Rfs.Nome;
                txtSigla.Text = dto.Sigla;
                txtNome.Text = dto.Nome;
            }
        }


        private void inserir()                                                      {
            RegiaoDTO dto = new RegiaoDTO();
            dto.Rfs.Id = Convert.ToInt32(hdnRfsId.Value);
            dto.Nome = txtNome.Text;
            dto.Sigla = txtSigla.Text;

            dto = Qtech.Reports.Atendimento.Services.CadastroFacade.SaveRegiao(dto);
            this.CodigoRegiao = dto.Id;

            MessageBox.pop("Registro inserido com sucesso!");
        }


        private void atualizar()                                                    {
            RegiaoDTO dto = new RegiaoDTO();
            dto.Id = this.CodigoRegiao;
            dto.Rfs.Id = Convert.ToInt32(hdnRfsId.Value);
            dto.Nome = txtNome.Text;
            dto.Sigla = txtSigla.Text;

            Qtech.Reports.Atendimento.Services.CadastroFacade.UpdateRegiao(dto);

            MessageBox.pop("Registro atualizado com sucesso!");
        }


        public int CodigoRegiao                                                     {
            get {
                if (ViewState["m_codigoRegiao"] != null)
                    return Convert.ToInt32(ViewState["m_codigoRegiao"]);
                return 0;
            }
            set {
                ViewState.Add("m_codigoRegiao", value);
            }
        }
    }
}
